﻿using System;
using System.Linq;
using System.Windows.Forms;
using Zvezda.FSO2.DB;

namespace FSO
{
    public partial class DialogFormExhangeRateSet : Form
    {
        string _curName;
        int _curID;
        DateTime _date;
        DataSetFSO.NSI_EXCHANGE_RATERow _rowExcangeRate;

        public DialogFormExhangeRateSet()
        {
            InitializeComponent();
        }
        public DialogFormExhangeRateSet(string CurName, DateTime date) 
        : this()
        {
            _curName = CurName;
            _date = date;
        }

        private void DalogExhangeRateSet_Load(object sender, EventArgs e)
        {
            if(_curName == "USD")
            {
                radLabelText.Text = "Введите курс доллара";
            }
            else if(_curName == "EUR")
            {
                radLabelText.Text = "Введите курс евро";
            }

            //узнаем ID валюты
            _curID = (int)nsI_EXCHANGE_RATETableAdapter1.getCurID(_curName);


            //Если валюты нет в справочнике
            if (_curID == -1)
            {
                MessageBox.Show(this, "Данная валюта отстутствует в справочнике!\n", "Отсутсвует валюта", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }

            nsI_EXCHANGE_RATETableAdapter1.FillByID_DATE(dataSetFSO1.NSI_EXCHANGE_RATE, _curID, _date.Date.ToString());
            
            //Если курс установлен
            if (dataSetFSO1.NSI_EXCHANGE_RATE.Rows.Count == 1)
            {
                //Получаем строчку курса
                _rowExcangeRate = dataSetFSO1.NSI_EXCHANGE_RATE.First();
            }
            //Если курса нет
            else if (dataSetFSO1.NSI_EXCHANGE_RATE.Rows.Count == 0)
            {
                //Создаем строчку курса
                _rowExcangeRate = dataSetFSO1.NSI_EXCHANGE_RATE.NewNSI_EXCHANGE_RATERow();
                dataSetFSO1.NSI_EXCHANGE_RATE.AddNSI_EXCHANGE_RATERow(_rowExcangeRate);
               
                //заполняем строчку уже известными данными
                _rowExcangeRate.NSI_CURRENCY_ID = _curID;
                _rowExcangeRate.DATE = _date;
                //_rowExcangeRate.RATE = 0;
            }

            //Связываем строчку с данными контрола
            radMaskedEditBoxRate.DataBindings.Clear();
            radMaskedEditBoxRate.DataBindings.Add("Text", _rowExcangeRate, dataSetFSO1.NSI_EXCHANGE_RATE.RATEColumn.ColumnName, true, DataSourceUpdateMode.OnPropertyChanged, 0, "N4");
        }

        private void radButtonSave_Click(object sender, EventArgs e)
        {
            nsI_EXCHANGE_RATETableAdapter1.Update(_rowExcangeRate);
        }

        private void radButtonCancel_Click(object sender, EventArgs e)
        {
            _rowExcangeRate.RejectChanges();
        }


    }
}
